public class Liczba
{
	private int n;
	private static final String[] numb={"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"};
	Liczba() {
		super();
	}
	Liczba(int n)
	{
		this.n=n;
	}
	Liczba(String n, int podstawa) throws LiczbaException 
	{
		if (podstawa < 2 || podstawa > 16) throw new LiczbaException();
		int out=0;
		for (int i=0; i<n.length(); i++)
		{
			for (int j=0; j<podstawa; j++)
			{
				if (Character.toString(n.charAt(i)).equals(numb[j]))
				{
					out+=j*Math.pow(podstawa, n.length()-i-1);
					break;
				}
			}
		}
		this.n=out;
	}
	public String zapis(int podstawa) throws LiczbaException
	{
		if (podstawa < 2 || podstawa > 16) throw new LiczbaException();
		String out="";
		for (int i=n; i>0; i=(int)Math.floor(i/podstawa))
			out=numb[i%podstawa]+out;
		return out;
	}
	
	public String toString() {
		return String.valueOf(n);
	}
}